d55237
@@ -97,18 +97,20 @@
public class DeploymentDefinition extends SimpleResourceDefinition {
             final String path = CONTEXT_ROOT.resolveModelAttribute(context, subModel).asString();
             final String server = SERVER.resolveModelAttribute(context, subModel).asString();
 
-            final ServiceController<?> controller = context.getServiceRegistry(false).getService(UndertowService.deploymentServiceName(server, host, path));
-            if (controller != null && controller.getState() != ServiceController.State.UP){//check if deployment is active at all
-                return;
-            }
-
-            final UndertowDeploymentService deploymentService = (UndertowDeploymentService) controller.getService();
             SessionStat stat = SessionStat.getStat(operation.require(ModelDescriptionConstants.NAME).asString());
 
             if (stat == null) {
                 context.getFailureDescription().set(UndertowLogger.ROOT_LOGGER.unknownMetric(operation.require(ModelDescriptionConstants.NAME).asString()));
             } else {
                 ModelNode result = new ModelNode();
+                final ServiceController<?> controller = context.getServiceRegistry(false).getService(UndertowService.deploymentServiceName(server, host, path));
+                if (controller != null && controller.getState() != ServiceController.State.UP) {//check if deployment is active at all
+                    return;
+                }
+                final UndertowDeploymentService deploymentService = (UndertowDeploymentService) controller.getService();
+                if (deploymentService == null || deploymentService.getDeployment() == null) { //we might be in shutdown and it is possible
+                    return;
+                }
                 Deployment deployment = deploymentService.getDeployment();
                 SessionManager sessionManager = deployment.getSessionManager();
                 SessionManagerStatistics sms = sessionManager.getStatistics();
